As memories grow faster, denser and more complex, there is an increased demand for ABIST (Array Built-In Self-Test) structures offering high speed and high test coverage, while at the same time consuming minimal area of a semiconductor chip. By way of example, FIG. 1 shows the block diagram architecture of a state of the art SRAM macro 10 provided with an ABIST unit 11. A similar architecture is described in U.S. Pat. No. 5,173,906 of common assignee. The functional units shown in FIG. 1, either form part of a stand-alone SRAM or the SRAM macro of a logic array of an integrated circuit chip. In the latter case, the chip may include a plurality of such macros, each provided with its own dedicated ABIST unit. The integrated circuit chip described is part of a wafer fabricated in a very large scale integration (VLSI) semiconductor technology and is presumed to be designed according to level-sensitive scan design (LSSD) rules.
As known to those skilled in the art, the SRAM macro 10 shown in FIG. 1 has three basic modes of operation: a SYSTEM mode, in which the SRAM macro 10 operates normally, i.e., where the memory unit 12 is either read or written, using the data-in signals DATAIN1 to DATAINM, the SRAM address signals ADDIN1 to ADDINP, and the read/write control signal R/WIN (where in M and P are, respectively, the bit widths of the data-in bus DATAIN and the SRAM address bus ADDIN). A second mode is required to satisfy LSSD requirements: the SCAN mode which is used for initializing/analyzing (SCAN-IN/SCAN-OUT) all the data of the latch pairs that form an LSSD chain. Finally, a third mode: the ABIST mode, in which the functionality of memory unit 12 is tested. It is a self-test which is first performed in a manufacturing environment before the chip is commercially released. A slightly different, more relaxed self-test is performed while the chip is incorporated in a system, for example, at the customer location, and thus in a system environment. As a result, the ABIST mode is used in different environments referred to hereinafter as the ABIST manufacturing sub-mode and the ABIST system sub-mode.
In the ABIST mode, according to the fundamentals of the self-test technique, the ABIST unit 11 generates a plurality of test vectors. Each test pattern consists of a set of deterministic 0's and 1's that are first written into memory unit 12, then read and compared with an expected pattern. The test pattern sequences play a key role in exercising the memory unit 12 to verify whether the memory unit 12 under test is functioning properly, i.e., to determine whether the READ and WRITE operations were successful. To that end, the ABIST unit 11 generates self-test data signals STDATA, self-test address signals STADD, and the self-test read/write control signal STRW.
Three groups of multiplexers select the signals to be fed to the memory unit 12. These include either the external signals mentioned above which are generated from outside the SRAM macro 10, namely, DATAIN1 . . . DATAINM, ADDIN1 . . . ADDINP, and R/WIN signals, or the internal self-test signals generated by the ABIST unit 11 mentioned above, namely, the STDATA, STADD, and STRW signals. The multiplexers forming these three groups are respectively referenced as 13-1 to 13-M, 13'-1 to 13'-P, and 13". The selection is made by the ABIST signal. Normally, external signals are selected when the ABIST signal is held at a logic "0", whereas signals that are internally generated by the ABIST unit 11 are selected when it is held at a logic "1". The ABIST signal thus allows the SRAM macro 10 to operate either in the SYSTEM mode or in the ABIST mode. The three groups of multiplexers 13-1 to 13-M, 13'-1 to 13'-P, and 13" form multiplexer block 13. The outputs of the first and second groups are labelled DATA bus and ADD bus, with M and P respective bit widths. The output of multiplexer 13" is a single line that carries the R/W control signal that determines the READ/WRITE operating mode of memory 12.
The data-out signals that are outputted by memory 12 are stored in a plurality of data-out L1/L2 pairs of latches (14-1 to 14-M) forming the data-out shift register 14. Generally, these data-out latch pairs are incorporated into memory 12. The data-out signals that are outputted by the L1 and L2 latches are labelled DATAOUT1 to DATAOUTM (DATAOUT bus) and DOUT1 to DOUTM (DOUT bus), respectively.
In the ABIST mode, after performing a READ operation, expected data signals labelled EXDATA are generated by the ABIST unit 11 on the EXDATA bus and are compared in the data compression unit 15 via data-out signals DOUT1 to DOUTM. Typically, only four test patterns are used on each word of the memory unit 12: alternate 0's and 1's, i.e., 0101 . . . 01 and 1010 . . . 10, all 0's and all 1's. Alternatively, there are only four self-test data signals, labelled STDATA0, STDATA1 and their respective complements. Because of the particular structure of these four test patterns, the data-out signals DOUT1 to DOUTM are divided into even and odd data-out signals. The even data-out signals that are outputted from the data-out shift register unit 14 are labelled DOUT2, DOUT4, . . . , DOUT2j, and likewise, the odd data-out signals are labelled DOUT1, DOUT3, . . . , DOUT(2j- 1), where J is an integer equal to M/2, assuming that M is an even number. Since all the even and odd numbered bits of the data-out signals have simultaneously the same `0` or `1` value, only two expected data signals are required, each one consisting of a single bit, EXDATA0 and EXDATA1. For instance, assuming the data-out signals to be read on the DOUT bus are: 010101 . . . 01, the expected data signal EXDATA0 (for the even numbered bits) will be "1" and the expected data signal EXDATA1 (for the odd numbered bits) "0". EXDATA0 and EXDATA1 signals are thus the expected results for the even and odd data-out signals, respectively. Finally, data compression unit 15 generates a signal labelled RESULT which is held at a high logic level, namely, at "1", if a mismatch occurs during the comparison. By mismatch, it is to be understood that at least one data-out signal does not have the same logic value as its corresponding even or odd expected data generated by the ABIST structure 11. This mismatch is often caused by a defective word line in the memory unit 12 at a predetermined address. This mismatch is usually referred to as a "fail". Alternatively, if all data-out signals match the corresponding even or odd expected data signals (which means no fail is detected), the RESULT signal is held at the low logic level, i.e. at "0". The RESULT signal, which is often referred to as the FAIL FOUND LAST CYCLE signal, indicates after completing a READ operation, whether the memory unit 12 at the current address is defective. The RESULT signal is thus indicative of the fail/no fail status of memory unit 12 on a cycle by cycle basis. Another key component of the state of the art SRAM macro 10 is the fail register unit 16. It is required because, in the ABIST manufacturing sub-mode, the addresses of the defective word lines have to be identified, then memorized for subsequent use in the SYSTEM mode. When the RESULT signal is raised to a logic "1", indicating the presence of a failure, the word portion of the current address generated by the ABIST unit 11 on the STADD bus, labelled STADD*, is stored in a bank of pairs or latches of the fail address register 16. This stored word address thus corresponds to the address of a defective word line.
The ABIST unit 11 also generates a CNOOP (NOOP stands for NO OPERATION) signal to inhibit the ABIST self-test mode when the totality of the test pattern sequences has been fully exercised on memory 12. This signal is required when there is a plurality of SRAM macros embedded in a single semiconductor chip. These macros may have different sizes requiring different durations for their respective test. The CNOOP signal generated by the ABIST unit of each SRAM macro allows the memory units of all macros to be simultaneously tested.
Clocking the SRAM macro 10 is achieved using the standard procedures in accordance with LSSD rules. In state of the art architecture, a SRAM as illustrated in FIG. 1, clocking would normally be implemented by standard external LSSD clock signals labelled A, B, C, S, and CS (CHIP SELECT for a stand-alone SRAM chip or ARRAY SELECT for a SRAM macro). Note that the clock signal S, which is substantially the same as the clock signal B, is applied to the L2 latches of the latch pairs 14-1 to 14-M of the data-out shift register 14. In the ABIST manufacturing sub-mode, the clock and CS signals are derived from the tester. In the ABIST system sub-mode, these signals are derived from the system clock. The SCAN-IN (SI) signal is applied to the ABIST unit 11 according to standard LSSD rules, as illustrated in FIG. 1. However, for sake of simplicity, the SCAN-OUT signal generated by ABIST 11 in response to the SCAN-IN signal to be applied to the next latch pair, etc., along the whole LSSD chain, is not shown. In the following description, only latches will be referred to while it is clear, that according to LSSD rules, they are in reality latch pairs. All these signals are directly applied to ABIST 11 and/or to the memory 12, except for the clock C and CS signals. The clock signal C is applied to one input of a 2-way AND gate 17A. The CS signal is applied to one input of the 2-way AND gate 17B. The CNOOP signal is applied to the second input of AND gates 17A and 17B as a gating signal in order to block, when needed, the transmission of the respective clock C and CS signals. This occurs when the self-test has been completed in the ABIST mode and permanently in the SYSTEM mode. The A, B, and S clock signals are used during the SCAN mode, whereas the B, C, S and CS signals are used during the ABIST mode. The CS signal is used alone in the SYSTEM mode while the LSSD clock signals are held in a non-active state. Numeral 18 schematically illustrates the clock distribution scheme in the SRAM macro 10 and also includes the internal chip clock distribution network servicing it. This terminates the description of a state of the art SRAM macro provided with an ABIST structure.
In the ABIST mode, it is essential to verify that the memory 12 functions correctly in a system having a very short cycle time (tc). More particularly, in the ABIST manufacturing sub-mode, it is an absolutely requirement that an accurate measurement of the memory access time (ta) be obtained, particularly, in view of the continuous trend towards decreasing the system cycle time coupled to the design of high speed SRAM macros havinh themselves a reduced memory access time. In this regard, it is difficult if not impossible to test the memory 12 of the SRAM macro 10 of FIG. 1 having such short system cycle time and make accurate memory access time measurements with a clock distribution scheme, such as 18, because of the unacceptable imprecision caused by uncontrollable clock signal skews. This is particularly true in the ABIST manufacturing sub-mode where the imprecision inherent to the clock distribution scheme 18 originates from a variety of factors such as: tester limitations, width variations of the clock signals generated by the tester, off-chip line delays caused by the lines between the tester and the chip, chip internal clock distribution networks, etc. In addition, calibration of the clock signals generated by the tester is required for a state of the art SRAM macro 11. This calibration is process dependent and thus must be done for each chip lot. The calibration is achieved by estimating the internal delays after accurate kerf measurements. As a result, it is expensive and time consuming to perform an accurate memory access time measurement in an ABIST manufacturing sub-mode because it requires high performance and expensive testers. However, this skew also exists in the ABIST system sub-mode. It is caused by the chip internal clock distribution network and by mismatches in the internal chip path delay thereof. For each clock signal, the mismatch results from physical wiring layout imbalances and device differences between the driver circuits that buffer the clock signals, which in turn results in layout and process dependency.
In contrast with the approach illustrated in conjunction with FIG. 1, the present invention aims to overcome all the drawbacks based on the fact that the development of high speed SRAM macros would advantageously necessitate the inclusion of a dedicated array clock generator (ACG) circuit within each macro in place of the clock distribution scheme 18. This ACG circuit is driven by a single input D clock signal and generates all the clock signals that are required for a proper operation of the ABIST mode. The input D clock signal is supplied externally to the SRAM macro either from the tester in the ABIST manufacturing sub-mode or from a signal directly derived from the system clock in the ABIST system sub-mode. In summary, the ACG circuit generates the LSSD B, C and S clock signals required by the ABIST structure and the CS signal required by the memory unit from a single input D clock signal.